Apparatus and method of wireless instant messaging

ABSTRACT

A wireless communication device declares one of a plurality of extended instant messaging states and transmits the declared states to a presence information server. Declared extended instant messaging states for destination devices are received, and an enhanced instant message based on declared extended instant messaging states is generated.

CROSS REFERENCE TO RELATED APPLICATION

This is a continuation of U.S. application Ser. No. 13/029,704, filedFeb. 17, 2011, which is a continuation of U.S. application Ser. No.11/360,363, filed Feb. 23, 2006, now U.S. Pat. No. 8,121,582, which is acontinuation of U.S. application Ser. No. 10/667,094, filed Sep. 19,2003, now U.S. Pat. No. 7,020,480, which claims the benefit of U.S.Provisional Application No. 60/411,744, filed Sep. 19, 2002. All theabove applications are hereby incorporated herein by reference.

TECHNICAL FIELD

The patent application relates generally to techniques for instantmessaging. More particularly, the invention described herein provides anapparatus and method for instant messaging with wireless devices.

BACKGROUND

Instant Messaging (IM) applications require solutions to two problems:(1) sending short messages; and (2) the problem of maintaining presenceinformation.

Known Instant Messaging (IM) techniques, such as ICQ, typically addressboth short messaging and presence information issues by sendingpeer-to-peer data over IP (Internet protocol). In ICQ, IP packets aresent between ICQ clients to both send short messages and to maintainpresence information. For any one ICQ client, the presence informationof a select group of other ICQ clients is typically maintained in a“buddy list”, so that when the user of an ICQ client consults the list,the user knows if any of the corresponding users in the “buddy list” areavailable for instant messaging, or if they are not. IM presenceinformation in ICQ is defined using states such as connected, chatty,away, extended away, occupied, do not disturb (DND), invisible, andoffline.

Known wireless networks are capable of sending data between wirelessdevices. Such wireless networks may include the GSM (Global System forMobile) and GPRS (Generalized Packet Radio Service), modern CodeDivision Multiple Access (CDMA) networks and third-generation (3G)networks like Enhanced Data-rates for Global Evolution (EDGE) andUniversal Mobile Telecommunications Systems (UMTS), currently underdevelopment. Some of these networks are also capable of sendingpeer-to-peer data over IP.

One skilled in the art might assume that simply providing IP-based IMclients, such as ICQ, on wireless devices is an acceptable solution tothe problem of conducting Instant Messaging on wireless networks.However, although known wireless networks are capable of IPcommunication, this solution is not well adapted to wireless resources.For instance, SMS (Short Messaging Service), although an availableresource on various wireless networks, does not operate over IP andtherefore may not be used to solve the message-sending problem at thewireless device if IP clients, such as ICQ, are used. Furthermore,simply using IP clients, such as ICQ, may cause frequent network trafficcommunications typical of non-wireless IP networks, which could exceedtypical wireless network capacity.

SUMMARY

A wireless communication device declares one of a plurality of extendedinstant messaging states and transmits the declared states to a presenceinformation server. Declared extended instant messages states fordestination devices are received, and an enhanced instant message basedon declared extended instant messaging states is generated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an instant messaging apparatus;

FIG. 2 is a block diagram of an instant messaging enabled cellularmobile station;

FIG. 3 is a block diagram of an instant messaging enabled GSM/GPRSnetwork apparatus;

FIG. 4 is a block diagram of a wireless network view of the instantmessaging server of FIG. 1;

FIG. 5 is a block diagram of a wide area network view of the instantmessaging server of FIG. 1;

FIG. 6 is a data flow diagram illustrating a method of device presencedetection of the instant messaging server of FIG. 3; and

FIG. 7 is a data flow diagram illustrating a method of host presencedetection of the instant messaging server of FIG. 5.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an instant messaging apparatus. Wirelessdevices 102 communicate on a wireless network 104, and with hosts 110via a wide area network 108. Communications can include data and/orvoice communications if the wireless device 102 is so enabled, but atleast include data communications. Data communications preferablyinclude instant communications, which are enhanced by a presenceinformation server 106 that is connected to both the wireless network104 and the wide area network 108. Although wireless network 104 mayconnect directly to wide area network 108, it is preferred that wirelessnetwork 104 communicate with wide area network 108 via the presenceinformation server 106. Presence related data and signalling may alsopreferably be communicated via the presence server 106.

The presence information server 106 may track both wireless devices 102and hosts 110. When tracking wireless devices 102, the presenceinformation server 106 detects the presence of select users of wirelessdevices. When tracking hosts 110, the presence information server 106detects the presence of select users at the hosts or the presence ofselect services provided by the hosts. Selection of which wirelessdevices and hosts are tracked can be either contingent on registrationof the wireless devices and hosts to ensure privacy or mandatory toensure security.

The presence information server 106 may selectively store presenceinformation corresponding to the detected wireless devices and alsocorresponding to the detected hosts. In the case of detected wirelessdevices, presence information may include an extended instant messagingstate. The extended instant messaging states includes traditionalpresence states, as well as activity states, proximity states,communication states, and more generally states that can be extended tobest suit specific instant messaging applications. Each of theseextended states will be described in greater detail in exampleapplications below. The stored presence information can be optionallytagged with various accessibility attributes, such as private or public,for example, to limit access to the presence information based on theattributes.

The presence information server 106 may selectively share the storedpresence information with interested devices or hosts to enhance instantcommunications. As with the selection of detected devices and hosts,selection of which wireless devices and hosts share presence informationcan be either contingent on registration of the wireless devices andhosts to ensure privacy, or mandatory to ensure security.

Operationally, the wireless devices 102 communicate with the hosts 110via the presence information server 106, although if an optional directconnection between wireless network 104 and wide area network 108exists, communications between wireless devices 102 and hosts 110 maybypass presence information server 106. Regardless of what routecommunications take, the tracking of devices and hosts, the storing ofpresence information, and the sharing of presence information enhancecommunications.

A first example application of the apparatus 100 of FIG. 1 is wirelessinstant messaging. Wireless instant messaging is the base applicationonto which other instant applications can be added by extending theinstant messaging states. In wireless instant messaging, an instantmessage is sent from a source to a destination where either: at leastone of the source and destination is a wireless device; or both sourceand destination are wireless devices. Since wireless devices areinherently capable of mobility, the wireless network inherently performssome tracking Therefore presence information server 106 can detect thepresence of at least one of the source or destination of a wirelessinstant message by co-operating with the wireless network and eitherpolling the status or receiving status updates from the wirelessnetwork. Advantageously, the wireless devices need not send anyadditional messages to the presence information server or to instantmessaging correspondents to have their basic presence tracked and sharedby the presence information server. Furthermore, because at most onlyone of the source or destination of a wireless instant message is a hostconnected via wide area network 108, traditional instant messagingtechniques can be used to detect the presence information of the host,if necessary. Thus, before a wireless instant message is sent from awireless device source that has registered an interest in the instantmessage destination with the presence information server, the presenceinformation of the destination can be shared with the wireless devicesource in order to enhance the instant message. The instant message canbe enhanced by, for example, altering the content of the message basedupon the location of the destination, or by altering the message format.Similarly, when a wireless instant message is received at a wirelessdevice destination that has registered an interest in the instantmessage source, the presence information of the source can be sharedwith the wireless device destination in order to enhance the instantmessage.

The precise form of tracking done by the wireless network depends on theparticular wireless network used. For instance, if the wireless networkhas cells which are divided into sectors, then as a wireless devicetravels from sector to sector, and from cell to cell, the wirelessnetwork inherently knows what sector and/or cell the wireless device ispresent in. Therefore, this presence information need not be detectedseparately for each wireless device by the presence information server,but instead is detected for many wireless devices by the presenceinformation server co-operating with the wireless network, which forinstance may already have the cell and/or sector information stored inany one of many location registers, such as an HLR (Home LocationRegister) or VLR (Visiting Location Register). The presence informationserver can further add to the presence detection by obtaining a preciseinstant location of the wireless devices. For instance, if a wirelessdevice is equipped with GPS (Global Positioning System), or if thewireless network is equipped with triangulation technology, then thepresence information server can poll the wireless device for a GPSreading or request triangulation of a wireless device from the wirelessnetwork. The presence information server can further add to the presencedetection by correlating presence with connection context, for instanceby using lookup tables that map IP addresses to device identifiers.

A second example application of the apparatus 100 of FIG. 1, whichbuilds on the above presence detection and base instant messagingapplication, is the extension of presence states to include useractivity states, such as looking, shopping, visiting, etc. In a useractivity application, the wireless device user voluntarily declares oneor more activity states to the presence information server, which inturn notes the particular activity interests that a wireless device usermay have at that instant. The presence information server then uses thedetected presence information and activity states to select hosts and/orwireless devices that have an instant interest that matches one or moreof the activity states of the wireless device. Thus, if the wirelessdevice is detected to be present at a cell or sector near a shoppingmall, and a host is present in the shopping mall, then if the user ofthe wireless device declares a shopping activity to the presenceinformation server, the latter selects the host present at the shoppingmall to instantly message the wireless device thereby enabling instantshopping.

Similarly, if the wireless device user declares a looking state, thepresence information server can, depending on the precise nature of thelocation of the device detected, select a host related to the locationof the wireless device in order to have the host instantly messagepossible choices to narrow down what the wireless device user is lookingat. If only the cell or sector is known, then a GIS (geographicalinformation server) host can be selected by the presence informationserver to instantly send a message to the wireless device and ask thewireless device user to pinpoint their location, for instance byproviding a URL to a map. Then, given a precise enough location such asa museum, the presence information server could then select a hostrelated to the museum and have the museum host instantly message thewireless device with more options to further narrow down what the useris looking at, for instance a painting on the third floor, south wall.The museum host could then help “track” the user using short-rangecommunications and instantly message the user with information aboutwhat he is looking at while the user declares a looking state, inco-operation with the presence information server.

Other activity states may be the visiting state, whereby a wirelessdevice user is not in their home location. This can be detected by thepresence information server, for instance by consulting locationregisters such as an HLR or a VLR of the wireless network, or can beexplicitly declared to the presence information server by the user.Further details of the visiting activity state will be described next inrelation to the next example application of instant messaging.

A third example application of the apparatus 100 of FIG. 1, which buildson the above presence detection, base instant messaging application, anduser activity application, is the extension of presence states toinclude contact proximity states, such as sector, cell, city, province,country, distance, etc. In a contact proximity application, the wirelessdevice user voluntarily declares a proximity state for each of aplurality of contacts, as found for instance in an address book. Thepresence information server stores these contact proximity states foreach wireless device so that, upon detection of the proximity betweenany two wireless devices according to the contact proximity states, thepresence information server can instantly alert the wireless device userof the proximity of the corresponding contact and enable the wirelessdevice user to instantly message the contact, for instance in order toestablish a meeting location, or to “spread out” in a search and rescueoperation. The resolutions of the proximity states are dependent on theinfrastructure available on a wireless network and the capabilities of awireless device. Thus, if a wireless device is equipped with GPS, fineresolution is possible where a fixed distance and even a direction canbe prescribed, thereby allowing search and rescue teams to maintain aspecific formation in real-time. Wireless networks are typically capableof resolutions by cell and/or sector, and knowledge of which cell and/orsector can be used to determine what city, province, country, continent,etc. any two wireless devices are in for the purposes of determiningproximity.

As mentioned above, it is possible to couple user activity states withcontact proximity states. For example, when a wireless device user is ina visiting user activity state, such as when travelling from one city toanother, contact proximity states can be automatically enabled at thecity resolution for those contacts that are in the currently visitedcity. Corresponding alerts could be automatically sent to the contactsif they had expressed an interest in the wireless device user, forinstance if they were interested in meeting with the wireless deviceuser. In this way, the wireless device user does not need to call on allhis contacts to let them know he is in town, and the interested contactsare given an opportunity to instantly message the wireless device user.

A fourth example application of the apparatus 100 of FIG. 1, whichbuilds on the above presence detection, base instant messagingapplication, is the extension of presence states to includecommunication states, such as broadband, narrow-band, inhibit, lowlatency, high latency, etc. When a wireless device changes cell and/orsector, or changes from one wireless network to another, communicationproperties change and thus may influence the presence of the wirelessdevice. For example, as a wireless device user leaves a rural area, suchas the user's home, and drives into an urban area, such as the user'swork, the wireless may access more than one cell. The rural cells maytend to have lower bandwidth than the urban cells, or the local wirelessnetwork at a work location. Thus, the presence information server canensure that the wireless device user is only alerted for those instantmessages that are appropriate given the communication state of thewireless device, for instance progressively enabling SMS messaging,email, and video-conferencing, respectively, as the communicationcapabilities of the wireless network cells and better wireless networksare located. Optionally, the presence information server forwardsinstant messages to a storage mechanism, such as the user's email inbox,if the instant communication capabilities of the wireless device do notpermit the instant message.

FIG. 2 is a block diagram of an instant messaging enabled cellularmobile station, which is one type of wireless communication device.Mobile station 200 is preferably a two-way wireless communication devicehaving at least voice and data communication capabilities. Mobilestation 200 preferably has the capability to communicate with othercomputer systems on the Internet. Depending on the exact functionalityprovided, the wireless device may be referred to as a data messagingdevice, a two-way pager, a wireless e-mail device, a cellular telephonewith data messaging capabilities, a wireless Internet appliance, or adata communication device, as examples.

Where mobile station 200 is enabled for two-way communication, it willincorporate a communication subsystem 211, including both a receiver 212and a transmitter 214, as well as associated components, such as one ormore, preferably embedded or internal, antenna elements 216 and 218,local oscillators (LOs) 213, and a processing module such as a digitalsignal processor (DSP) 220. The particular design of the communicationsubsystem 211 will be dependent upon the communication network in whichthe device is intended to operate. For example, mobile station 200 mayinclude a communication subsystem 211 designed to operate within theMobitex™ mobile communication system, the DataTAC™ mobile communicationsystem, or a GPRS network.

Network access requirements will also vary depending upon the type ofnetwork 219. For example, in the Mobitex and DataTAC networks, mobilestation 200 is registered on the network using a unique identificationnumber associated with each mobile station. In GPRS networks, however,network access is associated with a subscriber or user of mobile station200. A GPRS mobile station therefore requires a subscriber identitymodule (SIM) card in order to operate on a GPRS network. Without a validSIM card, a GPRS mobile station will not be fully functional. Local ornon-network communication functions, as well as legally requiredfunctions (if any) such as “911” emergency calling, may be available,but mobile station 200 will be unable to carry out any other functionsinvolving communications over the network 200. The SIM interface 244 isnormally similar to a card-slot into which a SIM card can be insertedand ejected like a diskette or PCMCIA card. The SIM card can haveapproximately 64K of memory and hold many key configuration 251, andother information 253 such as identification, and subscriber relatedinformation.

When required network registration or activation procedures have beencompleted, mobile station 200 may send and receive communication signalsover the network 219. Signals received by antenna 216 throughcommunication network 219 are input to receiver 212, which may performsuch common receiver functions as signal amplification, frequency downconversion, filtering, channel selection and the like, and in theexample system shown in FIG. 2, analog to digital (A/D) conversion. A/Dconversion of a received signal allows more complex communicationfunctions, such as demodulation and decoding to be performed in the DSP220. In a similar manner, signals to be transmitted are processed,including modulation and encoding for example, by DSP 220 and input totransmitter 214 for digital to analog conversion, frequency upconversion, filtering, amplification and transmission over thecommunication network 219 via antenna 218. DSP 220 not only processescommunication signals, but also provides for receiver and transmittercontrol. For example, the gains applied to communication signals inreceiver 212 and transmitter 214 may be adaptively controlled throughautomatic gain control algorithms implemented in DSP 220.

Mobile station 200 preferably includes a microprocessor 238 thatcontrols the overall operation of the device. Communication functions,including at least data and voice communications, are performed throughcommunication subsystem 211. Microprocessor 238 also interacts withfurther device subsystems, such as the display 222, flash memory 224,random access memory (RAM) 226, auxiliary input/output (I/O) subsystems228, serial port 230, keyboard 232, speaker 234, microphone 236, ashort-range communications subsystem 240 and any other device subsystemsgenerally designated as 242.

Some of the subsystems shown in FIG. 2 perform communication-relatedfunctions, whereas other subsystems may provide “resident” or on-devicefunctions. Notably, some subsystems, such as keyboard 232 and display222, for example, may be used for both communication-related functions,such as entering a text message for transmission over a communicationnetwork, and device-resident functions such as a calculator or tasklist.

Operating system software used by the microprocessor 238 is preferablystored in a persistent store, such as flash memory 224, which mayinstead be a read-only memory (ROM) or similar storage element. Theoperating system, specific device applications, or parts thereof, may betemporarily loaded into a volatile memory such as RAM 226. Receivedcommunication signals may also be stored in RAM 226.

As shown, flash memory 224 can be segregated into different areas forboth computer programs 258 and program data storage 250, 252, 254 and256. These different storage types indicate that each program canallocate a portion of flash memory 224 for their own data storagerequirements. Microprocessor 238, in addition to its operating systemfunctions, preferably enables execution of software applications on themobile station. A predetermined set of applications that control basicoperations, including at least data and voice communication applicationsfor example, will normally be installed on mobile station 200 duringmanufacturing. A preferred software application may be a personalinformation manager (PIM) application having the ability to organize andmanage data items relating to the user of the mobile station such as,but not limited to, e-mail, calendar events, voice mails, appointments,and task items. Naturally, one or more memory stores would be availableon the mobile station to facilitate storage of PIM data items. Such aPIM application would preferably have the ability to send and receivedata items via the wireless network 219. In a preferred embodiment, thePIM data items are seamlessly integrated, synchronized and updated, viathe wireless network 219, with the mobile station user's correspondingdata items stored or associated with a host computer system. Furtherapplications may also be loaded onto the mobile station 200 through thenetwork 219, an auxiliary I/O subsystem 228, serial port 230,short-range communications subsystem 240 or any other suitable subsystem242, and installed by a user in the RAM 26 or preferably a non-volatilestore for execution by the microprocessor 238. Such flexibility inapplication installation increases the functionality of the device andmay provide enhanced on-device functions, communication-relatedfunctions, or both. For example, secure communication applications mayenable electronic commerce functions and other such financialtransactions to be performed using the mobile station 200.

In a data communication mode, a received signal, such as a text messageor web page download, will be processed by the communication subsystem211 and input to the microprocessor 238, which preferably furtherprocesses the received signal for output to the display 222, oralternatively to an auxiliary I/O device 228. A user of mobile station200 may also compose data items, such as email messages for example,using the keyboard 232, which is preferably a complete alphanumerickeyboard or telephone-type keypad, in conjunction with the display 222and possibly an auxiliary I/O device 228. Such composed items may thenbe transmitted over a communication network through the communicationsubsystem 211.

For voice communications, overall operation of mobile station 200 issimilar, except that received signals are preferably output to a speaker234 and signals for transmission are generated by a microphone 236.Alternative voice or audio I/O subsystems, such as a voice messagerecording subsystem, may also be implemented on mobile station 200.Although voice or audio signal output is preferably accomplishedprimarily through the speaker 234, display 222 may also be used toprovide an indication of the identity of a calling party, the durationof a voice call, or other voice call related information for example.

Serial port 230 in FIG. 2, would normally be implemented in a personaldigital assistant (PDA)-type mobile station for which synchronizationwith a user's desktop computer may be desirable, but is an optionaldevice component. Such a port 230 would enable a user to set preferencesthrough an external device or software application and would extend thecapabilities of mobile station 200 by providing for information orsoftware downloads to mobile station 200 other than through a wirelesscommunication network. The alternate download path may, for example, beused to load an encryption key onto the device through a direct and thusreliable and trusted connection to thereby enable secure devicecommunication.

A short-range communications subsystem 240 is a further optionalcomponent which may provide for communication between mobile station 200and different systems or devices, which need not necessarily be similardevices. For example, the subsystem 240 may include an infrared deviceand associated circuits and components or a Bluetooth™ communicationmodule to provide for communication with similarly-enabled systems anddevices.

FIG. 3 is a block diagram of an instant messaging enabled GSM/GPRSnetwork apparatus. In this instant messaging enabled GSM/GPRS networkapparatus 300, wireless devices 302 communicate wirelessly via a BaseStation Subsystem (BSS) 301. All radio access and radio packettransmission and conversion are done in the BSS 301, which includes aBase Transceiver Station (BTS) 313, a Base Station Controller (BSC) 312,and a Mobile Switching Centre (MSC) 314. In addition, a Serving GPRSSupport Node (SGSN) 316 connects the BSS 301 to an operator GPRScellular intra-network 304. The operator GPRS cellular intra-network 304is also connected to an operator IP network 326 via a Gateway GPRSSupport Node GGSN 318, similar to the SGSN. The operator GPRS cellularintra-network 304 is also connected to an authentication server 322 inorder to authenticate users of wireless devices 302. Both the GGSN 318and authentication server 322 are connected to the operator IP network326, which connects to a public IP network, such as the Internet 308 viaa firewall 311 to reach hosts such as service host 320 and instantmessaging (IM) host 310. The firewall 311, operator IP network 326, andauthentication server 322 provide an access control mechanism 324.

Operationally, a core GSM/GPRS network is used in the apparatus 300. Inthe core network, because MSCs are based upon circuit-switchedcentral-office technology, and cannot handle packet traffic, two othercore network components, the SGSN and GGSN enable data traffic. The SGSNcan be viewed as a “packet-switched MSC”—it delivers packets to mobilestations (MSs) within its service area. SGSNs send queries to homelocation registers (HLRs) to obtain profile data of GPRS subscribers.SGSNs detect new GPRS MSs in a given service area, process registrationof new mobile subscribers, and keep a record of their location inside agiven area. The SGSN performs mobility management functions such asmobile subscriber attach/detach and location management. The SGSN isconnected to the base-station subsystem via a Frame Relay connection tothe PCU in the BSC. GGSNs are used as interfaces to external IPnetworks, such as the public Internet, other mobile service providers'GPRS services, or enterprise intranets. GGSNs maintain routinginformation that is necessary to tunnel protocol data units (PDUs) tothe SGSNs that service particular wireless devices. Other functionsinclude network and subscriber screening and address mapping. One (ormore) GGSNs may be provided to support multiple SGSNs.

The wireless devices 302 can be any wireless data device capable ofoperating with BTS 313, and need not necessarily be IP based, althoughIP is preferred. When either voice or data traffic is originated at thewireless device 302, it is transported over the air interface to the BTS313, and from the BTS 313 to the BSC 312 in the same way as a standardGSM voice call. However, at the output of the BSC 312, the traffic isseparated—voice is sent to the MSC 314 per standard GSM, and data issent to the SGSN 316. Each GPRS BSC 312 provides a physical and logicaldata interface out of the BSS 301 for packet data traffic. In order toco-operate with the presence information server 306, the BTS 313 mayrequire a software upgrade, but typically will not require hardwareenhancements depending on the manufacturer. The purpose of operatorintra-network 304 is to interconnect operator network premises. Servicehosts 320 are third party service providers based on the locations ofthe users. IM hosts 310 are other third party IM hosts to enable regularwired IM services, such as ICQ.

In addition to these components, apparatus 300 includes a presenceinformation server/wireless instant messaging server 306, which couplesthe operator GPRS cellular intra-network 304 to the operator IP networkand keeps track of the location of each user/device. By communicatingwith the GGSN and SGSN, the presence information server/wireless instantmessaging server 306 can detect changes in HLRs and/or routinginformation in order to detect presence information.

In alternate embodiments of apparatus 300, the presence server/IM server306 keeps track of location based on cellular infrastructure,triangulation techniques, or GPS systems. In other embodiments, themobile devices may be able to operate with more than one wirelessnetwork, such as GSM and CDMA, for example. In these embodiments,location signals associated with one of the wireless networks may beused by the other network. For example, the GSM network may providelocation information which can be provided to the CDMA network if themobile device is communicating with the CDMA network, but is alsocapable of communicating with the GSM network simultaneously.

FIG. 4 is a block diagram of a wireless network view of the instantmessaging server of FIG. 1. As seen from the point of view of thewireless network 404, presence information server 406 enables presencedetection and shares presence information with wireless devices 402. Inparticular, presence information server 406 attempts to track wirelessdevices 402, 402D, 402DI and 402I in order to detect the presence of aselect number of the wireless devices. Presence information servertracks which wireless devices are detected and which wireless devicesare interested, as illustrated by the Venn diagram composed of ovals 414and 412 respectively representing the set of detected 402D and 402DI, aswell as interested 402DI and 402I wireless devices. Note that detectionand interest are independent concepts, and wireless devices can existwhich, although operating on wireless network 404, are neither detectednor interested, such as wireless device 402, or are even both detectedand interested as wireless device 402DI.

Presence information server 406 includes a device presence detectormodule 416, a storage module 424, and a device presence communicationmodule 420. The device presence detector module 416 detects the presenceof wireless devices and maintains detected wireless devices information418. The detected wireless devices information 418 includes deviceidentifiers, and any presence states detected by the device presencedetector module 416 as well as presence states declared by the detectedwireless devices. Device presence detector module 416 provides thedetected wireless device information 418 to the storage module 424. Thestorage module 424 updates stored presence information 426 based on thedetected wireless device information 418. The presence information 426can include host presence information, as well as the device presenceinformation, as will be more readily apparent in regard to FIG. 5. Thedevice presence communication module 422 includes interested wirelessdevice information 422. The interested wireless device information 422includes the device identifiers of interested devices. Thus, the devicepresence communication module 420 reads the stored presence information426 and selectively communicates the presence information to theinterested wireless devices.

FIG. 5 is a block diagram of a wide area network view of the instantmessaging server of FIG. 1. As seen from the point of view of the widearea network 508, presence information server 506 enables presencedetection and shares presence information with hosts 510. In particular,presence information server 506 attempts to track hosts 510, 510D, 510DIand 510I in order to detect the presence of a select number of thehosts. The presence information server tracks which hosts are detectedand which hosts are interested, as illustrated by the Venn diagram,composed of ovals 514 and 512, respectively, representing the set ofdetected 510D and 510DI, as well as interested 510DI and 510I hosts.Note that detection and interest are independent concepts, and hosts canexist which, although operating on wide area network 508, are neitherdetected nor interested, such as host 510, or are both detected andinterested as host 510DI.

Presence information server 506 includes a host presence detector module516, a storage module 524, and a host presence communication module 520.The host presence detector module 516 detects the presence of hosts andmaintains detected hosts information 518. The detected hosts information418 includes host identifiers, and any presence states detected by thehost presence detector module 516, as well as presence states declaredby the detected hosts. Host presence detector module 516 provides thedetected hosts information 418 to the storage module 524. The storagemodule 524 updates stored presence information 526 based on the detectedhosts information 518. The presence information 526 can include devicepresence information, as well as the hosts presence information, as wasmore readily apparent in regard to FIG. 4. The device presencecommunication module 522 includes interested hosts information 522. Theinterested hosts information 522 includes the host identifiers ofinterested hosts. Thus, the host presence communication module 520 readsthe stored presence information 526 and selectively communicates thepresence information to the interested hosts.

FIG. 6 is a data flow diagram illustrating a method of device presencedetection of the instant messaging server of FIG. 3. A wireless deviceis illustrated at two different instances in time, an initial instancewireless device 602 and a subsequent instance wireless device 602D.Initially, wireless device 602 has an instant state 640 that representsthe current presence state of the wireless device as known to it. One ormore of a plurality of triggers, of which only 630, 632, 634, 636, 638are illustrated, causes the wireless device initial instant state 640 tochange to the wireless device subsequent instant state 640D.

Trigger events may include mobility triggered 630, whereby for instancethe wireless device changes location; user activity triggered 632,whereby for instance the wireless device user is actively perusing somepre-determined and declared activity (shopping, looking, visiting,etc.); interested proximity triggered 634, whereby for instance thewireless device user has just been alerted of the proximity of acontact; communication triggered 636, whereby for instance the wirelessdevice has just entered a high bandwidth wireless network cell; andvoluntarily triggered 638, whereby the user of the wireless devicedeclares an instant state change by operation of the wireless device.

Presence information server 606 detects the subsequent instant state640D, and proceeds to share the presence information with interesteddevices 602I, as illustrated by the oval 612D, via wireless network 604,and with interested hosts 610I, as illustrated within the oval 612H, viawide area network 608, thereby enabling instant messaging to beselectively initiated between wireless device 602D, interested devices602I and interested hosts 610I.

FIG. 7 is a data flow diagram illustrating a method of host presencedetection of the instant messaging server of FIG. 5. A host isillustrated at two different instances in time, an initial instance host710 and a subsequent instance host 710D. Initially, host 710 has aninstant state 750 that represents the current presence state of the hostas known to it. One or more of a plurality of triggers, of which only730, 732, 734, 736, 738 are illustrated, causes the host initial instantstate 740 to change to the host subsequent instant state 740D.

Trigger events may include service triggered 730, whereby for instancethe host registers a service with presence information server 706; useractivity triggered 732, whereby for instance the host user is activelyperusing some pre-determined and declared activity (shopping, looking,visiting, etc.); interested proximity triggered 734, whereby forinstance the host user has just been alerted of the proximity of acontact; communication triggered 736, whereby for instance the host hasjust accessed a high bandwidth network; and voluntarily triggered 638,whereby the user of the host declares an instant state change byoperation of the host.

Presence information server 706 detects the subsequent instant state750D, and proceeds to share the presence information with interestedhosts 710I, as illustrated by the oval 712H, via wide area network 708,and with interested wireless devices 702I, as illustrated within theoval 712D, via wireless network 704, thereby enabling instant messagingto be selectively initiated between host 710D, interested devices 702Iand interested hosts 710I.

The above-described embodiments of the present invention are intended tobe examples only. Those of skill in the art may effect alterations,modifications and variations to the particular embodiments withoutdeparting from the scope of the invention.

The invention claimed is:
 1. A method performed by a hardware server,comprising: receiving an interest from an interested host; receivingpresence information regarding a wireless device, wherein the presenceinformation identifies a current activity state of a user of thewireless device, the activity state being selected from the usercurrently looking, the user currently shopping and the user currentlyvisiting; and sending an alert to the interested host in response todetecting a match between the user's current activity state and theinterest from the interested host.
 2. The method of claim 1, wherein theactivity state is declared by the user.
 3. The method of claim 1,wherein the activity state is declared by the wireless device.
 4. Themethod of claim 1, wherein the sending of an alert to the interestedhost is based on location of the wireless device.
 5. The method of claim4, wherein the sending of an alert to the interested host is based onlocation of the wireless device relative to location of the interestedhost.
 6. The method of claim 1, wherein the interested host isassociated with a merchant.
 7. The method of claim 1, wherein theinterested host is associated with a shopping mall.
 8. The method ofclaim 1, further comprising: in response to detecting a match betweenthe interest from the interested host and the user's current activitystate of shopping, arranging for the interested host to send a messageto the user.
 9. The method of claim 8, wherein the message is configuredto initiate instant shopping between the interested host and thewireless device.
 10. The method of claim 1, further comprising: inresponse to detecting a match between the interest from the interestedhost and the user's current activity state of looking, arranging for theinterested host to send a message to the user.
 11. A server comprising:a microprocessor configured to receive an interest from an interestedhost; a communication subsystem configured to receive presenceinformation regarding a wireless device, wherein the presenceinformation identifies a current activity state of a user of thewireless device, the activity state being selected from the usercurrently looking, the user currently shopping and the user currentlyvisiting, wherein the communication subsystem is further configured tosend an alert to the interested host in response to detecting a matchbetween the user's current activity state and the interest from theinterested host.
 12. The server of claim 11, wherein the activity stateis declared by the user.
 13. The server of claim 11, wherein theactivity state is declared by the wireless device.
 14. The server ofclaim 11, wherein the sending of an alert to the interested host isbased on location of the wireless device.
 15. The server of claim 14,wherein the sending of an alert to the interested host is based onlocation of the wireless device relative to location of the interestedhost.
 16. The server of claim 11, wherein the interested host isassociated with a merchant.
 17. The server of claim 11, wherein theinterested host is associated with a shopping mall.
 18. The server ofclaim 11, wherein the communication module is configured to: in responseto detecting a match between the interest from the interested host andthe user's current activity state of shopping, arranging for theinterested host to send a message to the user.
 19. The server of claim18, wherein the message is configured to initiate instant shoppingbetween the interested host and the wireless device.
 20. The server ofclaim 11, wherein the communication module is configured to: in responseto detecting a match between the interest from the interested host andthe user's current activity state of looking, arranging for theinterested host to send a message to the user.